/*
fgetpos()，fsetpos()
fseek()和ftell()有一个潜在的问题，那就是它们都把文件大小限制在 long int 类型能表示的范围内。这看起来相当大，但是在32位计算机上，long int 的长度为4个字节，能够表示的范围最大为 4GB。随着存储设备的容量迅猛增长，文件也越来越大，往往会超出这个范围。鉴于此，C 语言新增了两个处理大文件的新定位函数：fgetpos()和fsetpos()。

它们的原型都定义在头文件stdio.h。

int fgetpos(FILE* stream, fpos_t* pos);
int fsetpos(FILE* stream, const fpos_t* pos);
fgetpos()函数会将文件内部指示器的当前位置，存储在指针变量pos。该函数接受两个参数，第一个是文件指针，第二个存储指示器位置的变量。

fsetpos()函数会将文件内部指示器的位置，移动到指针变量pos指定的地址。注意，变量pos必须是通过调用fgetpos()方法获得的。fsetpos()的两个参数与fgetpos()必须是一样的。

记录文件内部指示器位置的指针变量pos，类型为fpos_t*（file position type 的缩写，意为文件定位类型）。它不一定是整数，也可能是一个 Struct 结构。

下面是用法示例。

fpos_t file_pos;
fgetpos(fp, &file_pos);

// 一系列文件操作之后
fsetpos(fp, &file_pos);
上面示例中，先用fgetpos()获取内部指针的位置，后面再用fsetpos()恢复指针的位置。

执行成功时，fgetpos()和fsetpos()都会返回0，否则返回非零值。
*/